<?php
/**
 * Erstellen von Bildtexten
 * 
 * @author		Joachim Ruf
 * @copyright	Copyright (c) 2003-2010 Loresoft Software (http://www.loresoft.de)
 * @license		http://yapary.loresoft.de/lizenzbedingungen     New BSD License
 * 
 * @TODO muss ueberarbeitet werden
 * */


Class Yapary_Image_Text2Image
{
	

	/**
	* Textbild erstellen
	* @param string $text : Text, welcher als Bild erstellt werden soll
	* @param int $fontSize : Darzustellende Textgroesse {1-5}
	* @param string $fontColor : Vordergrundfarbe ohne vorangestelltes #
	* @param string $bgColor : Hintergrundfarbe ohne vorangestelltes #
	* @return raw-image
	*/	
	function __construct ( $text, $fontSize = 3, $fontColor = '000000', $bgColor = 'FFFFFF' )
	{
		if( $fontSize <= 0 || $fontColor > 5 )
			$fontSize = 5; // FontSize 1-5

		//$fontSize = dirname($_SERVER["SCRIPT_FILENAME"])."/meyne_textur.ttf";// imageloadfont("meyne_textur.ttf");

		$imgWidth = imagefontwidth($fontSize) * strlen($text) + 2;
		$imgHeight = imagefontheight($fontSize) + 2;

		$img = ImageCreateTrueColor( $imgWidth, $imgHeight );
		ImageFill($img, 0, 0, $this->colorHex($img, $bgColor));
		ImageString($img, $fontSize, 1, 1, $text, $this->colorHex($img, $fontColor));

		$this->OutputImage($img);
		$this->ImageDestroy($img); //Speicher leeren
	}
	

	/*
	// String in ascci-Werte trennen
	public function ordArray( $delimiter, $string )
	{
		$output = '';

		if( strlen($string) >= 1 )
			for( $i=0; $i<strlen($string); $i++ )
				$output .= ord(substr($string,$i,1)).';';
		
		return $output;
	} 

	
	public function  chrArray()
	{
		// encodierter String decodieren
		if( $encode )
		{
			$arrData = explode(".", $data);
			if( count($arrData) >= 1 )
			{
				$data = '';
				foreach( $arrData as $key => $val )
					$data .= chr($val);
			}
		}
	}	
	*/
	
	
	/**
	* Color in Hex umwandeln
	* @param object $img : Bildobjekt welches angesprochen werden soll
	* @param string $color : Color ohne #, welches umgewandelt werden soll
	*/
	private function colorHex ( $img, $color ) 
	{
			$R = hexdec(substr($color, 0, 2));
			$G = hexdec(substr($color, 2, 2));
			$B = hexdec(substr($color, 4, 2));
			return ImageColorAllocate($img, $R, $G, $B);
	}


	/**
	* Ausgabe eines definierten Bildobjekts
	* @param object $img : Bildobjekt welches angesprochen werden soll
	*/
	private function OutputImage($img) 
	{
		header('Content-type: image/jpg');
		ImageJPEG($img,NULL,100);
	}

	
}


?>
